smtp.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { PermissionAction } from '@supabase/shared-types/out/constants'
  2. import { GenericSkeletonLoader } from 'ui-patterns'
  3. import { PageContainer } from 'ui-patterns/PageContainer'
  4. import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
  5. import { SmtpForm } from '@/components/interfaces/Auth/SmtpForm/SmtpForm'
  6. import { AuthEmailsLayout } from '@/components/layouts/AuthLayout/AuthEmailsLayout'
  7. import DefaultLayout from '@/components/layouts/DefaultLayout'
  8. import NoPermission from '@/components/ui/NoPermission'
  9. import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
  10. import type { NextPageWithLayout } from '@/types'
  11. const SmtpPage: NextPageWithLayout = () => {
  12. const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
  13. PermissionAction.READ,
  14. 'custom_config_gotrue'
  15. )
  16. if (isPermissionsLoaded && !canReadAuthSettings) {
  17. return <NoPermission isFullPage resourceText="access your project's email settings" />
  18. }
  19. return (
  20. <PageContainer size="default">
  21. {!isPermissionsLoaded ? (
  22. <PageSection>
  23. <PageSectionContent>
  24. <GenericSkeletonLoader />
  25. </PageSectionContent>
  26. </PageSection>
  27. ) : (
  28. <SmtpForm />
  29. )}
  30. </PageContainer>
  31. )
  32. }
  33. SmtpPage.getLayout = (page) => (
  34. <DefaultLayout>
  35. <AuthEmailsLayout>{page}</AuthEmailsLayout>
  36. </DefaultLayout>
  37. )
  38. export default SmtpPage